<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      function formatDate(date = new Date()) {
        const now = new Date();
        switch (true) {
          case now - date <= 1000:
            return "right now";
          case now - date <= 60 * 1000:
            return ` ${Math.floor((now - date) / 1000)} sec. ago`;
          case now - date <= 60 * 60 * 1000:
            return ` ${Math.floor((now - date) / 1000 / 60)}  min. ago`;
          default:
            return date.toLocaleString();
        }
      }

      // 如果 date 距离现在不到 1 秒，输出 "right now"
      // 例如 "right now"
      console.log(formatDate(new Date(new Date() - 1)));
      // 否则，如果 date 距离现在不到 1 分钟，输出 "n sec. ago"。
      // 例如 "30 sec. ago"
      console.log(formatDate(new Date(new Date() - 30 * 1000)));
      // 否则，如果不到 1 小时，输出 "m min. ago"。
      // 例如 "5 min. ago"
      console.log(formatDate(new Date(new Date() - 5 * 60 * 1000)));
      // 否则，以 "DD.MM.YY HH:mm" 格式输出完整日期。
      // 即："day.month.year hours:minutes"，全部以两位数格式表示
      //例如 31.12.16 20:00
      console.log(formatDate(new Date(new Date() - 86400 * 1000)));
    </script>
  </body>
</html>
